1 字符串操作

1.1 charAt对应位置上的字符

1.1.1 字符串通过[index]获取

1.2 字符编码相关

1.2.1 charCodeAt对应位置上的编码

1 ’a‘-97
2 'A'-65
3 '0'-48

1.2.2 String.fromCharCode(code)编码转字符

1.3 字符串位置

1.3.1 indexOf

1.3.2 lastIndexOf

1.4 截取字符串

1.4.1 substring(开始位置,[结束位置])

1.4.2 substr(开始位置,[字符数量])

1.4.3 slice(开始位置,[结束位置])

1 负数位置⭐⭐⭐
"abc".slice(-1) // "c"
"abc".slice(-2) // "bc"

2 玩法:零补齐两位指数⭐⭐⭐

es6中提供了padStart方法

let hours = 19, minutes = 8, seconds = 3;

// ("0"+minutes).slice(-2) 主要是转化为两位数,8->08
let result = `${("0" + hours).slice(-2)}::${("0" + minutes).slice(-2)}::${("0" + seconds).slice(-2)}`;
// 19::08::03
console.log(result)

1.5 split 分割为数组s

1.5.1 玩法:逆序字符串

"abc".split("").reverse().join("") // "cba"

1.6 replaceAll

let str = "tmd,外卖还没到,真tmd!"
// ***,外卖还没到,真***!
let result = str.replaceAll("tmd", "***");

1.6.1 玩法:实现上述效果不用replace

let str = "tmd,外卖还没到,真tmd!"
//["", ",外卖还没到,真", "!"]
let result = str.split('tmd').join("***");

1.7 startsWith

1.8 endsWith

1.9 includes

1.9.1 返回boolean

1.10 padStart(位数,填充的字符)

let hours = 7;
hours.toString().padStart(2,'0') // "07"

1.10.1 padEnd

1.11 repeat重复字符串

let str = "hi".repeat(3);

2 模板字符串

2.1 底层原理是通过正则匹配字符串

let name = "Aeroxian, school = "CAU";
// 模拟模板字符串
let str = "My name is ${name},at ${school}!";

// 匹配${任意字符}, 通过()单独拿出括号的内容
let result = str.replace(/\$\{([^\}]*)\}/g, function () {
    console.log(arguments)
    return eval(arguments[1])
})
// My name is Aeroxian,at CAU
console.log(result)
/** arguments
 [Arguments] {
  '0': '${name}',
  '1': 'name',
  '2': 11,
  '3': 'My name is ${name},at ${school}'
}
[Arguments] {
  '0': '${school}',
  '1': 'school',
  '2': 22,
  '3': 'My name is ${name},at ${school}'
}
 */

2.2 玩法:快速拼接成有序列表

let names = ["Aeroxian", "hzz"];
let lis = names.map(item => `<li>${item}</li>`);
let result = `
    <ul>
    ${lis.join("")}
    </ul>
`;
/**
<ul>
<li>Aeroxian</li><li>hzz</li>
</ul>
 */

2.3 玩法:web中content-type

let type = mime.getType(filename);
response.writeHead(200,{
	"content-type":`${type};charset=utf-8`
})

2.4 模板标签

  1. 提供了可以对模板字符操作的空间
function tag(str) {
    console.log(str)
    console.log(arguments)
}
let name = "Aeroxian", age = 25;
let result = tag`My name is ${name},and ${age} years old`;

/** str
0: "My name is "
1: ",and "
2: " years old"
 */

/** arguments
0: (3) ["My name is ", ",and ", " years old", raw: Array(3)]
1: "Aeroxian"
2: 25
*/